﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace BoekenUsb2.Model.DatabaseRepositories
{
    public abstract partial class DatabaseRepository
    {
        /*******************************/
        /* LeerlingBoekBestelling_Boek */
        /*******************************/

        public DataTable LeerlingBoekBestelling_Boek_GetData()
        {
            return defaultExecuteReaderDataTable(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek");
        }

        public DataTable LeerlingBoekBestelling_Boek_GetDataByAfgehaald(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE leerlingID = @leerlingID AND status = 2 ORDER BY categorieCode");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_Boek_GetDataByIsbnEnLeerlingID(string isbnNr, int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(2);
                dbManager.AddParameters(0, "@isbnNr", isbnNr);
                dbManager.AddParameters(1, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE (isbnNr = @isbnNr) AND (leerlingID = @leerlingID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_Boek_GetDataByLeerlingID(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE leerlingID = @leerlingID");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_Boek_GetByLeerlingIDGesorteerd(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE (leerlingID = @leerlingID) ORDER BY categorieCode");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_Boek_GetDataByRekeningID(int rekeningID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@rekeningID", rekeningID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE rekeningID = @rekeningID");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoekBestelling_Boek_GetDataByRekeningRetourID(int rekeningID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@rekeningID", rekeningID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT boekID, boeksoortCode, categorieCode, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, status, leerlingID, boeklijstID, leerlingBoekID, huurboek, schoolPrijs, huurPrijs, boeklijstItemID, rekeningID, rekeningRetourID, isbnNr, opmerking, uitgeverCode, titel, auteur, aBoek, isBestelbaarBijPlato, voorraad1, voorraad2, reserve, uitgeverNaam, categorieOmschrijving FROM LeerlingBoekBestelling_Boek WHERE rekeningRetourID = @rekeningID");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

    }
}
